package com.kws.system.api.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * @author : zhangbenting
 * @date : 2024/11/29 10:25
 * @Version: 1.0
 */
@Data
@ApiModel(description = "光伏测算输入实体")
public class PhotovoltaicDto {
    @ApiModelProperty("安装区域")
    @NotBlank(message = "安装区域不能为空")
    private List<String> azqy;

    @ApiModelProperty("安装详细地址")
    @NotBlank(message = "安装详细地址不能为空")
    private String azxd;

    @ApiModelProperty("屋顶类型")
    @NotBlank(message = "屋顶类型不能为空")
    private String wdlx;

    @ApiModelProperty("用户类型")
    @NotBlank(message = "用户类型不能为空")
    private String yhlx;

    @ApiModelProperty("屋顶面积")
    @NotBlank(message = "屋顶面积不能为空")
    private String wdmj;

    @ApiModelProperty("用电方式")
    @NotBlank(message = "用电方式不能为空")
    private String ydfs;

    @ApiModelProperty("上网电量 (余电上网时展示上网电量)")
    @NotBlank(message = "上网电量不能为空")
    private String swdl;

    @ApiModelProperty("自发自用时是自用电量,全额上网时为年用电量)")
    @NotBlank(message = "自用电量/年用电量不能为空")
    private String zydlOrnydl;

    @ApiModelProperty("减碳系数")
    @NotBlank(message = "减碳系数不能为空")
    private String jtxs;

    @ApiModelProperty("投资方式")
    @NotBlank(message = "投资方式不能为空")
    private String tzfs;

    @ApiModelProperty("总运维成本")
    @NotBlank(message = "总运维成本不能为空")
    private String zywcb;

    @ApiModelProperty("投资资金")
    @NotBlank(message = "投资资金不能为空")
    private String tzzj;

    @ApiModelProperty("光伏板安装方式")
    @NotBlank(message = "光伏板安装方式不能为空")
    private String gfbazfs;

    @ApiModelProperty("运营年限")
    @NotBlank(message = "运营年限不能为空")
    private String yynx;

    @ApiModelProperty("首年衰减")
    @NotBlank(message = "首年衰减不能为空")
    private String snsj;

    @ApiModelProperty("逐年递减")
    @NotBlank(message = "逐年递减不能为空")
    private String zndj;

    @ApiModelProperty("发电效率")
    @NotBlank(message = "发电效率不能为空")
    private String fdxl;

    @ApiModelProperty("组件效率")
    @NotBlank(message = "组件效率不能为空")
    private String zjxl;

    @ApiModelProperty("年利用小时数")
    @NotBlank(message = "年利用小时数不能为空")
    private String nlyxss;

    @ApiModelProperty("加权电价")
    @NotBlank(message = "加权电价不能为空")
    private String jqdj;

    @ApiModelProperty("光照数据源")
    @NotBlank(message = "光照数据源不能为空")
    private String gzsjy;

    @ApiModelProperty("分成比例")
    @NotBlank(message = "分成比例不能为空")
    private String fcbl;

    @ApiModelProperty("用电类型")
    @NotBlank(message = "用电类型不能为空")
    private String ydlx;

//    @ApiModelProperty(value = "地址", required = true)
//    @NotBlank(message = "地址不能为空")
//    private String address; // 地址
//
//    @ApiModelProperty(value = "屋顶类型", required = true)
//    @NotBlank(message = "屋顶类型不能为空")
//    private String roofType; // 屋顶类型
//
//    @ApiModelProperty(value = "用户类型", required = true)
//    @NotBlank(message = "用户类型不能为空")
//    private String userType; // 用户类型
//
//    @ApiModelProperty(value = "屋顶面积 (平方米)", required = true)
//    @NotNull(message = "屋顶面积不能为空")
//    @DecimalMin(value = "0.0", inclusive = false, message = "屋顶面积必须大于0")
//    private Double roofArea; // 屋顶面积
//
//    @ApiModelProperty(value = "用电方式", required = true)
//    @NotBlank(message = "用电方式不能为空")
//    private String powerConsumptionMethod; // 用电方式
//
//    @ApiModelProperty(value = "年用电量 (千瓦时)", required = true)
//    @Positive(message = "年用电量必须大于0")
//    private Integer annualPowerConsumption; // 年用电量
//
//    @ApiModelProperty(value = "投资方式", required = true)
//    @NotBlank(message = "投资方式不能为空")
//    private String investmentMode; // 投资方式
//
//    @ApiModelProperty(value = "光伏板安装方式（铺设方式）", required = true)
//    @NotBlank(message = "光伏板安装方式不能为空")
//    private String solarPanelInstallationMethod; // 光伏板安装方式（铺设方式）
//
//    @ApiModelProperty(value = "运营年限 (年)", required = true)
//    @Positive(message = "运营年限必须大于0")
//    private Integer operationYears ; // 运营年限，默认值为25年
//
//    @ApiModelProperty(value = "首年衰减 (%)", required = true)
//    @DecimalMin(value = "0.0", inclusive = true, message = "首年衰减不能小于0")
//    @DecimalMax(value = "1.0", inclusive = true, message = "首年衰减不能超过100%")
//    private Double initialDegradation ; // 首年衰减，默认值为2%
//
//    @ApiModelProperty(value = "首年后逐年衰减 (%)", required = true)
//    @DecimalMin(value = "0.0", inclusive = true, message = "首年后逐年衰减不能小于0")
//    @DecimalMax(value = "1.0", inclusive = true, message = "首年后逐年衰减不能超过100%")
//    private Double subsequentAnnualDegradation ; // 首年后逐年衰减，默认值为0.3%
//
//    @ApiModelProperty(value = "发电效率 (%)", required = true)
//    @DecimalMin(value = "0.0", inclusive = true, message = "发电效率不能小于0")
//    @DecimalMax(value = "1.0", inclusive = true, message = "发电效率不能超过100%")
//    private Double powerGenerationEfficiency ; // 发电效率，默认值为80%
//
//    @ApiModelProperty(value = "每KW光伏建设成本 (元)", required = true)
//    @DecimalMin(value = "0.0", inclusive = false, message = "每KW光伏建设成本必须大于0")
//    private Double costPerKw; // 每KW光伏建设成本
//
//    @ApiModelProperty(value = "气象源（光照数据源）", required = true)
//    @NotBlank(message = "气象源不能为空")
//    private String weatherSource; // 气象源（光照数据源）
//
//    @ApiModelProperty(value = "组件类型", required = true)
//    @NotBlank(message = "组件类型不能为空")
//    private String componentType; // 组件类型
//
//    @ApiModelProperty(value = "每KW光伏运维成本 (元)", required = true)
//    @DecimalMin(value = "0.0", inclusive = false, message = "每KW光伏运维成本必须大于0")
//    private Double maintenanceCostPerKw; // 每KW光伏运维成本
//
//    @ApiModelProperty(value = "上网电价-上网基本电价 (元/千瓦时)")
//    @DecimalMin(value = "0.0", inclusive = true, message = "上网电价不能小于0")
//    private Double onGridElectricityPrice; // 上网电价-上网基本电价
//
//    @ApiModelProperty(value = "分成比例", required = true)
//    @DecimalMin(value = "0.0", inclusive = true, message = "分成比例不能小于0")
//    @DecimalMax(value = "1.0", inclusive = true, message = "分成比例不能超过100%")
//    private Double splitRatio ; // 分成比例，默认值为8折
//
//    @ApiModelProperty(value = "满发小时数 (小时)", required = true)
//    @Positive(message = "满发小时数必须大于0")
//    private Integer fullLoadHours; // 满发小时数
//
//    @ApiModelProperty(value = "加权电价 (元/千瓦时)", required = true)
//    @DecimalMin(value = "0.0", inclusive = true, message = "加权电价不能小于0")
//    private Double premiumElectricityPrice; // 加权电价
//
//    @ApiModelProperty(value = "用电类型", required = true)
//    @NotBlank(message = "用电类型不能为空")
//    private String powerUsageType; // 用电类型

//    @ApiModelProperty(value = "地址")
//    private String address; // 地址
//
//    @ApiModelProperty(value = "屋顶类型")
//    private String roofType; // 屋顶类型
//
//    @ApiModelProperty(value = "用户类型")
//    private String userType; // 用户类型
//
//    @ApiModelProperty(value = "屋顶面积 (平方米)")
//    private Double roofArea; // 屋顶面积
//
//    @ApiModelProperty(value = "用电方式")
//    private String powerConsumptionMethod; // 用电方式
//
//    @ApiModelProperty(value = "年用电量 (千瓦时)")
//    private Integer annualPowerConsumption; // 年用电量
//
//    @ApiModelProperty(value = "投资方式")
//    private String investmentMode; // 投资方式
//
//    @ApiModelProperty(value = "光伏板安装方式（铺设方式）")
//    private String solarPanelInstallationMethod; // 光伏板安装方式（铺设方式）
//
//    @ApiModelProperty(value = "运营年限 (年)")
//    private Integer operationYears; // 运营年限
//
//    @ApiModelProperty(value = "首年衰减 (%)")
//    private Double initialDegradation; // 首年衰减
//
//    @ApiModelProperty(value = "首年后逐年衰减 (%)")
//    private Double subsequentAnnualDegradation; // 首年后逐年衰减
//
//    @ApiModelProperty(value = "发电效率 (%)")
//    private Double powerGenerationEfficiency; // 发电效率
//
//    @ApiModelProperty(value = "每KW光伏建设成本 (元)")
//    private Double costPerKw; // 每KW光伏建设成本
//
//    @ApiModelProperty(value = "气象源（光照数据源）")
//    private String weatherSource; // 气象源（光照数据源）
//
//    @ApiModelProperty(value = "组件类型")
//    private String componentType; // 组件类型
//
//    @ApiModelProperty(value = "每KW光伏运维成本 (元)")
//    private Double maintenanceCostPerKw; // 每KW光伏运维成本
//
//    @ApiModelProperty(value = "上网电价-上网基本电价 (元/千瓦时)")
//    private Double onGridElectricityPrice; // 上网电价-上网基本电价
//
//    @ApiModelProperty(value = "分成比例")
//    private Double splitRatio; // 分成比例
//
//    @ApiModelProperty(value = "满发小时数 (小时)")
//    private Integer fullLoadHours; // 满发小时数
//
//    @ApiModelProperty(value = "加权电价 (元/千瓦时)")
//    private Double premiumElectricityPrice; // 加权电价
//
//    @ApiModelProperty(value = "用电类型")
//    private String powerUsageType; // 用电类型
}
